// play.js
const API_BASE_URL = "http://www.chaizhicheng.top:3000";
const app = getApp();

Page({
  data: {
    isPlay: '',
    song: [],
    innerAudioContext: {},
    show: true,
    showLyric: true,
    songid: [],
    history_songId: []
  },
  onLoad: function(options) {
    const audioName = options.name;
    const audioid = options.id; // onLoad()后获取到歌曲视频之类的id
    console.log(audioName,audioid)
    this.play(audioid); //把从wxml获取到的值传给play()
  },

  play: function(audioid) {
    const audioId = audioid;
    console.log(audioId, audioid)
    app.globalData.songId = audioId; //让每一个要播放的歌曲ID给全局变量的songId
    const innerAudioContext = wx.createInnerAudioContext();
    this.setData({
      innerAudioContext,
      isPlay: true
    })
    // 请求歌曲音频的地址，失败则播放出错，成功则传值给createBgAudio(后台播放管理器，让其后台播放)
    wx.request({
      url: API_BASE_URL + '/song/url',
      data: {
        id: audioId
      },
      success: res => {
        if (res.data.data[0].url === null) { //如果是MV 电台 广告 之类的就提示播放出错，并返回首页
          console.log('play方法中请求不到播放地址', res.data)
          wx.showModal({
            content: '服务器开了点小差~~',
            cancelColor: '#DE655C',
            confirmColor: '#DE655C',
            showCancel: false,
            confirmText: '返回',
            complete() {
              wx.navigateBack({
                
              })
            }
          })
        } else {
          console.log('play方法中请求到了播放地址',res.data)
          this.createBgAudio(res.data.data[0]);
        }
      }
    })
    //获取到歌曲音频，则显示出歌曲的名字，歌手的信息，获取歌曲详情；如果失败，则播放出错。
    wx.request({
      url: API_BASE_URL + '/song/detail',
      data: {
        ids: audioId //必选参数ids
      },
      success: res => {
        if (res.data.songs.length === 0) {
          wx.showModal({
            content: '服务器开了点小差~~',
            cancelColor: '#DE655C',
            confirmColor: '#DE655C',
            showCancel: false,
            confirmText: '返回',
            complete() {
              wx.switchTab({
                url: '/pages/index/index'
              })
            }
          })
        } else {
          this.setData({
            song: res.data.songs[0], //获取到歌曲的详细内容，传给song
          })
          app.globalData.songName = res.data.songs[0].name;
        }
      },
    })
  },

  // 创建背景音频管理器
  createBgAudio(res) {
    console.log('创建背景音频管理器')
    const bgAudioManage = wx.getBackgroundAudioManager(); //获取全局唯一的背景音频管理器。并把它给实例bgAudioManage
    app.globalData.bgAudioManage = bgAudioManage; //把实例bgAudioManage(背景音频管理器) 给 全局
    bgAudioManage.title = 'title'; //把title 音频标题 给实例
    bgAudioManage.src = res.url; // res.url 在createBgAudio 为 mp3音频  url为空，播放出错
    const history_songId = this.data.history_songId
    const historySong = {
      id: app.globalData.songId,
      songName: app.globalData.songName
    }
    history_songId.push(historySong)
    bgAudioManage.onPlay(res => { // 监听背景音频播放事件
      this.setData({
        isPlay: true,
        history_songId
      })
    });
    bgAudioManage.onEnded(() => { //监听背景音乐自然结束事件，结束后自动播放下一首。自然结束，调用go_lastSong()函数，即歌曲结束自动播放下一首歌
      console.log('播放结束了，应当开启下一首')
      // this.go_lastSong();
    })
    wx.setStorageSync('historyId', history_songId); //把historyId存入缓存
  },

  // 播放和暂停
  handleToggleBGAudio() {
    // const innerAudioContext = app.globalData.innerAudioContext;
    const bgAudioManage = app.globalData.bgAudioManage;
    const { isPlay } = this.data;
    if (isPlay) {
      bgAudioManage.pause();
      // innerAudioContext.pause();handleToggleBGAudio
    } else {
      bgAudioManage.play();
      // innerAudioContext.play();
    }
    this.setData({
      isPlay: !isPlay
    })
    console.log(this.data.isPlay)
  }
})